In coding theory, puncturing is the process of removing some of the parity bits after encoding with an error-correction code. This has the same effect as encoding with an error-correction code with a higher rate, or less redundancy. However, with puncturing the same decoder can be used regardless of how many bits have been punctured, thus puncturing considerably increases the flexibility of the system without significantly increasing its complexity.
In some cases, a pre-defined pattern of puncturing is used in an encoder. Then, the inverse operation, known as depuncturing, is implemented by the decoder.
Puncturing is used in UMTS during the rate matching process. It is also used in Wifi, GPRS and EDGE, as well as in the DVB-T and DRM Standards.
Puncturing is often used with the Viterbi algorithm in coding systems.